package online.model.check;

import online.model.UniModel;
import online.model.session.ActionParameter;
import online.model.session.SessionUser;

/**
 * 入力チェック
 *
 * @author Tadashi Nakayama
 * @version 1.0.0
 */
public interface InputCheck {

	/**
	 * 汎用モデル設定
	 *
	 * @param model 汎用モデル
	 */
	void setUniModel(UniModel model);

	/**
	 * アクションパラメタ設定
	 *
	 * @param param アクションパラメタ
	 */
	void setActionParameter(ActionParameter param);

	/**
	 * セションユーザ情報設定
	 *
	 * @param user セションユーザ情報
	 */
	void setSessionUser(SessionUser user);

	/**
	 * 削除位置設定
	 *
	 * @param loc 削除位置
	 */
	void setDeletedLocation(int[] loc);

	/**
	 * 復帰値設定
	 *
	 * @param ret 復帰値
	 */
	void setReturn(String ret);

	/**
	 * トップメッセージのメッセージ設定
	 *
	 * @param msg メッセージ
	 * @param sts ステータス
	 */
	void setMessage(String msg, String sts);

	/**
	 * トップメッセージのメッセージ追加
	 *
	 * @param msg メッセージ
	 * @param sts ステータス
	 */
	void addMessage(String msg, String sts);

	/**
	 * エラー発生時実行
	 *
	 * @param ic 実行クラス
	 */
	void onError(ItemOperation ic);

	/**
	 * 入力チェック設定
	 *
	 * @param item 項目名
	 * @param ic チェッククラス
	 * @param others その他項目名
	 */
	void add(String item, ItemCheck ic, String... others);

	/**
	 * 初期化
	 *
	 */
	void clear();

	/**
	 * チェック処理
	 */
	void check();

	/**
	 * チェック後入力値取込処理
	 */
	void populate();
}
